package com.jason.system.mapper;

import com.jason.system.entity.Student;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author jie
 * @version 1.0
 * success come from self-discipline
 * @date 2021/3/25 15:20
 */
public interface StudentMapper {

  /**
   * 获取所有学生信息
   * @return List<Student>
   */
  List<Student> getAllStudent();

  /**
   * 根据专业年级模糊查询学生信息
   * @param grade 年级
   * @param major 专业
   * @return List<Student>
   */
  List<Student> searchStudents(@Param("grade") String grade , @Param("major") String major);

  /**
   * 通过主键id查找学生信息
   * @param stuId 学生id
   * @return Student
   */
  Student getStudentById(@Param("stuId") Integer stuId);

  /**
   * 获取所有学生信息
   * @param stuIds 学生ids,以String形式存在，以逗号分割
   * @return List<Student>
   */
  List<Student> getStudentByList(@Param("stuIds") List<Integer> stuIds);

  /**
   * 通过学号查找学生信息
   * @param stuNo 学号
   * @return Student
   */
  Student getStudentByNo(@Param("stuNo") String stuNo);

  /**
   * 添加学生信息
   * @param student 学生信息
   */
  void insertStudent(@Param("student") Student student);

  /**
   * 更新学生信息
   * @param student 学生信息
   */
  void updateStudent(@Param("student") Student student);

  /**
   * 根据主键删除学生
   * @param stuId 学生id
   */
  void deleteStudent(@Param("stuId") Integer stuId);

  /**
   * 批量删除学生
   * @param studentIds 学生ids
   */
  void deleteMoreStudent(@Param("studentIds") List<Integer> studentIds);
}
